package br.com.toscano.contpedido.view.servlet.relatorio;

import java.lang.reflect.Field;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

public class ConstantesRelatorio {

	public static final int TIPO_PDF = 1;

	public static final int TIPO_RTF = 2;

	public static final int TIPO_XLS = 3;

	public static final int TIPO_HTML = 4;

	public static final int TIPO_TXT = 5;	

	
	public static final String RELATORIO_PEDIDO = "/report/relatorio_pedido.jasper";
	
	public static URL getURLRelatorio(String nomeRelatorio) {
		return (URL)relatorios.get(nomeRelatorio);
	}

	private static Map relatorios = new HashMap();

	static {

		Field[] campos = ConstantesRelatorio.class.getFields();

		for (int i = 0; i < campos.length; i++) {
			Field campo = campos[i];
			try {
				if (!campo.getName().equals("relatorios")) {
					inicializarPropriedades((String) campo.get(null));
				}
			} catch (IllegalAccessException e) {
				e.printStackTrace();
				throw new IllegalArgumentException();
			}
		}
	}

	/**
	 * Inicializa as propriedades da classes ConstantesJNDI
	 */

	public static void inicializarPropriedades(String nomeArquivo) {

		// InputStream stream;
		URL url;

		try {

			ClassLoader classLoader = ClassLoader.getSystemClassLoader();

			url = classLoader.getResource(nomeArquivo);

			// if system class loader not found try the this class classLoader

			if (url == null) {
				url = ConstantesRelatorio.class.getClassLoader().getResource(
						nomeArquivo);
			}

			if (url == null) {
				url = ConstantesRelatorio.class.getResource(nomeArquivo);
			}

			relatorios.put(nomeArquivo, url);

		} catch (Exception ex) {

			ex.printStackTrace();

		}

	}

}
